
# 序列的通用操作

"""
包括 ：索引(下标) ，切片 ，相加 ，相乘 ，包含

一. 索引：
1. 索引： 支持的数据类型有 ：列表 ，元祖 ，字符串 。
2. 格式 ：seq[index]
3. 说明 ：可以从左向右数 ，索引是0开始 ，也可以从右往左数，索引是从-1开始

二. 切片 ：从序列中有规律性的获取若干个元素 ，
1.支持的数据类型有 ：列表，元组，字符串
2.格式 ：seq[start:end:step]
    start : 开始索引 ，默认值是0
    end : 结束位置， 不包括该位置 ，默认值是序列的长度
    step : 步长 ，默认值是1

三 ： 相加和相乘
相加 ：两个同一数据类型的序列进行相加 ，seq1 + seq2 = seq
相乘 ：序列和整数的相乘  ，seq1 * number = seq

说明 ：支持以上操作的数据类型包括 ：列表 ，元祖 ，字符串

四 ：检查元素 ：判断一个元素是否在另外一个元素中 ，支持的数据类型包括 ：列表，元组 ，字符串 ，字典 。
使用格式 ：obj in seq
"""

lst = [1,2,3,4]
tp = (1,2,3,4)
my_str = "abcdefg"

# 获取第3个元素
print(lst[2])
print(lst[-2])
print(tp[2])
print(tp[-2])
print(my_str[2])
print(my_str[-5])


# 切片
lst2 = ['red','green','blue','black','gold','orange']
print("获取第2~5个元素:",lst2[1:5:1])
print("获取偶数的元素:",lst2[1:6:2])
print("获取奇数的元素:",lst2[0:6:2])

print("获取奇数的元素:",lst2[::2])
print("获取第3个以及后面的元素:",lst2[2::])
print("获取前3个元素:",lst2[:3:])
print("将列表进行反转:",lst2[::-1])
print("获取整个列表:",lst2[::])
print("获取整个列表:",lst2)

# 相加相乘
lst2 = [None] * 6
print(lst2)

print("======================")
print("="*30)

print("abc"+"xyz")
print([1,2,3]+[5,2,9])
print((1,2,3)+(5,2,9))

# 检查元素
tp3 = ('hello','world','python')
lst3 = ['hello','world','python']
str3 = "hello world python"
dct3 = {'hello':1,'world':2,'python':3}

print('hello' in tp3)
print('hello' in lst3)
print('hello' in str3)
print('hello' in dct3)

print('java' in tp3)
print('java' in lst3)
print('java' in str3)
print('java' in dct3)